#pragma once
#include <vector>
#include <torch/torch.h>
#include "STECCalculator.h"

class VTECConverter {
public:
    VTECConverter(double ionosphereHeight = 350.0);
    ~VTECConverter();

    // 设置STEC观测数据
    void setSTECObservations(const std::vector<STECObservation>& stecObs);
    
    // 将STEC转换为VTEC
    void convertToVTEC();
    
    // 获取VTEC观测结果
    std::vector<VTECObservation> getVTECObservations() const;

private:
    std::vector<STECObservation> stecObservations_;
    std::vector<VTECObservation> vtecObservations_;
    double ionosphereHeight_;  // 电离层等效高度(km)
    
    // 计算电离层映射函数
    double calculateMappingFunction(double elevation);
};